/*
 * File:   DrawingStrategy.h
 * Author: root
 *
 * Created on November 16, 2008, 11:56 AM
 */

#include "DiscardStrategy.h"

#ifndef _DRAWINGSTRATEGY_H
#define	_DRAWINGSTRATEGY_H

class DrawingStrategy : public Strategy {
protected:
    DiscardStrategy* discardStrategy;

public:
    
    DrawingStrategy(const string& myName, int myParameterSize) 
    : Strategy(myName, myParameterSize), discardStrategy(NULL) {}

    DrawingStrategy(int myWeight)
    : Strategy(myWeight), discardStrategy(NULL) {}
    
    virtual void setDiscardStrategy(DiscardStrategy* strategyRef) {
        discardStrategy = strategyRef;
    }

    virtual bool pickFromDiscard(CCardStack*, const GameState*) = 0;  // This function should NOT modify the game state
    
    virtual ~DrawingStrategy() {}

};

#endif	/* _DRAWINGSTRATEGY_H */

